<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

/**
 * Projeto Interdiciplinar
 * Gurpo 1 - Primeira turma do curso de Aux Info da Escom Brasília
 * Criado em: 21/11/2012, 09:29:46
 * Description of c_parte
 *
 *  * @author 2 Sgt Lemoel, 
 *         3 Sgt Albuquerque,
 *         3 Sgt Azambuja,
 *         3 Fabio Moura
 * @since 11/2012
 * @version 1
 */
class C_Parte extends MY_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('m_parte');
    }

    /**
     * Carrega a view de cadastro de PARTE do Sistema
     */
    public function formParte() {

        $tipo = trim($this->input->post('dados'));

        /*
         * Existe documento ? true ou false ?
         */
        if ($this->m_parte->isSetParte() === FALSE) {

            $this->load->model('m_usuario');

            /*
             * Gerando o toke para envio para o form da view
             */
            $dados['token'] = $this->m_tools->geraToken();

            /*
             * Gravando o token na session
             */
            $this->session->set_userdata('token', $dados['token']);

            $dados['cmbUsuarioOfDia'] = $this->m_usuario->cmbUsuarioSv(NULL, 'ofDeDia');
            $dados['cmbUsuarioAdj'] = $this->m_usuario->cmbUsuarioSv(NULL, 'adj');

            $this->loadView('parte/v_formParte', $dados);
        } else {
            if ($tipo === 'visitante') {
                $this->m_tools->go('../c_visitante/listarVisitante');
            } else if ($tipo === 'parte') {
                $this->listarPartes();
                $msg = $this->session->userdata('pstGradSigla') . '- (' . $this->session->userdata('idt') . ') ' . $this->session->userdata('nomeGuerra') . '<br/>';
                $msg .= 'O Sr. já criou um documento hoje!';
                $this->m_tools->setAlertMsg('alert', $msg, 'ALERTA');
            }
        }
    }

    public function validaFormParte() {

        $dados['OF_DIA_IDT'] = $this->input->post('cmbOfDeDia');
        $dados['ADJ_IDT'] = $this->input->post('cmbAdj');
        $token = $this->input->post('token');

        if ($this->session->userdata('token') == $token) {
            if (is_numeric($dados['OF_DIA_IDT']) && is_numeric($dados['ADJ_IDT'])) {
                if (!empty($dados['OF_DIA_IDT']) && !empty($dados['ADJ_IDT'])) {

                    /*
                     * Chamada ao método que realiza a gravação
                     */
                    $msg = $this->gravarParte($dados);
                } else {
                    $msg = 'erro';
                }
            } else {
                $msg = 'erro';
            }
        } else {
            die('sem token');
            $msg = 'erro';
        }
        echo $msg;
    }

    private function gravarParte($dados) {

        $dados['CMT_GDA_IDT'] = $this->session->userdata('idt');
        $dados['STATUS'] = 1;
        $dados['DT_HORA_INICIO'] = date("Y-m-d H:i:s");

        return $this->m_parte->gravarParte($dados);
    }

    public function listarPartes() {

        $this->load->model('m_partestatus');
        $this->load->model('m_parte');

        /*
         * 1 CADASTRARDO
          3 - ENVIADO PARA O ADJUNDO
          5 - ENVIADO PARA OF DE DIA
          7 - ENVIADO PARA O SUBCMT
          9 - ENVIADO AO S2

          8 - DEVOLVIDO AO SUB CMT
          6 - DEVOLVIDO AO OF DE DIA
          4 - DEVOLVIDO AO ADJ
          2 - DEVOLVIDO AO CMT GDA
         */

        $dados['parte'] = NULL;

        $perfil = $this->session->userdata('perfilId');

        $array = array(Cmt, SubCmt, S2);
        if (in_array($perfil, $array)) {
            $resultParte = $this->m_parte->listaTodasAsParte()->result();
            
        } else {
            $resultParte = $this->m_parte->listaParte()->result();
        }
        
        foreach ($resultParte as $value) {

            $excluir = $novo = $editar = $visualizar = NULL;

            $idStatusDoc = $this->m_parte->getStatus($value->ID)->row()->STATUS;

            $statusDesc = $this->m_partestatus->getParteStatusDesc($idStatusDoc)->row()->PARTE_STATUS_DESC;

            $parteCrypt = "'" . $this->encrypt->encode($value->ID) . "'";

            $img = $this->m_parte->preparaColunaDeStatus($idStatusDoc, $parteCrypt);

            /*
             * O documento nao foi arquivado(DATA_FIM VAZIA) e o status so pode ser
             * 1 = cadastrado 
             * 2 = devolvido ao cmt gda pelo adj
             */

            /*
             * POR FALTA DE TEMPO NAO FOI POSSIVEL IMPLEMENTAR O EDITAR/EXCLUIR UMA PARTE
             * LEMBRANDO QUEM FOR IMPLEMENTAR QUE
             * UMA PARTE SO PODE SER EXCLUIDA CASO NAO POSSUA NENHUM REGISTRO DE VISITANTE
             * UMA PARTE SO PODER SER EXCLUIDA QUANDO ESTIVER NO STATUS DO CMT GDA
             */
            $dadosColunaDespacho = NULL;
            if(!empty($value->DESPACHO)){
                $dadosColunaDespacho = "<td valign='middle'><p align='center' scope='col' >" . @$value->DESPACHO . "</p></td>";
                $dados['colunaDespacho'] = '<th>DESPACHO</th>';
            }
            
            $dados['parte'] .= "<tr class='gradeU' valign='middle' align='center' style='font-size: 12px ;text-transform:uppercase;'>";
            $dados['parte'] .= "<td valign='middle'><p align='center' scope='col' >" . @$value->ID . "</p></td>";
            $dados['parte'] .= "<td valign='middle'><p align='center' scope='col' >" . @$value->PST_OF_DE_DIA . ' - ' . @$value->NOME_OF_DE_DIA . "</p></td>";
            $dados['parte'] .= "<td valign='middle'><p align='center' scope='col' >" . @$value->GRAD_ADJUNTO . ' - ' . @$value->NOME_ADJUNTO . "<br/></p></td>";
            $dados['parte'] .= "<td valign='middle'><p align='center' scope='col' >" . @$value->GRAD_CMT_GDA . ' - ' . @$value->NOME_CMT_GDA . "<br/></p></td>";
            $dados['parte'] .= "<td valign='middle'><p align='center' scope='col' >" . @$value->DATA_INICIO . "</p></td>";
            $dados['parte'] .= "<td valign='middle'><p align='center' scope='col' >" . @$statusDesc . "</p></td>";
            $dados['parte'] .= $dadosColunaDespacho;
            $dados['parte'] .= '<td valign="middle">
                                          <p align="center" scope="col">
                                           ' . $img . '
                                           </p>
                                       </td>';
            $dados['parte'] .= "</tr>";
        }
        $this->loadView('parte/v_relParte', $dados);
    }
   
    public function validaEnvioDocumento() {
        $this->load->model('m_parte');
        $idDocumento = $this->encrypt->decode($this->input->post('parteId'));
        echo $this->m_parte->validaEnvioDocumento($idDocumento);
    }
    
    public function validaDevolucaoDocumento() {
        $this->load->model('m_parte');
        $idDocumento = $this->encrypt->decode($this->input->post('parteId'));
        echo $this->m_parte->validaDevolucaoDocumento($idDocumento);
    }
    
    public function arquivarDocumento() {
        $parteId = trim($this->encrypt->decode($this->input->post('parteId')));
        if(!empty($parteId)){
         echo $this->m_parte->alteraStatusDoc('100',$parteId);
        } else {
         echo FALSE;
        }
    }
    
    public function despacho() {
        
        $parteId = $this->encrypt->decode($this->input->post('parteId'));
        
        $perfil = $this->session->userdata('perfilId');
        
        $dados['despacho'] = $this->m_parte->getDespacho($parteId)->row()->DESPACHO;
        
        $this->load->view('parte/v_despacho',$dados);
        
    }
    
    public function gravaDespacho() {
        $parteId = $this->encrypt->decode($this->input->post('parteId'));
        $despacho = $this->input->post('despacho');

        if($despacho !== FALSE && $parteId !== FALSE){
            echo $this->m_parte->gravaDespacho($despacho,$parteId);
        }
        
    }
    
    public function justificativa() {      
       $this->load->view('parte/v_despacho');      
    }
    
    public function gravaJustificativa() {
        $parteId = $this->encrypt->decode($this->input->post('parteId'));
        $despacho = $this->input->post('despacho');

        if($despacho !== FALSE && $parteId !== FALSE){
            echo $this->m_parte->gravaDespacho($despacho,$parteId);
        }
        
    }
    
    

}

?>